package com.googlecode.kipler.container.dl;

import java.util.Stack;

import com.googlecode.kipler.satisfiability.completion.rule.RuleLogger;
import com.googlecode.kipler.satisfiability.completion.rule.trace.RuleTrace;
import com.googlecode.kipler.satisfiability.interpolation.InterpolationConstants;
import com.googlecode.kipler.syntax.formula.ConceptAssertion;

public class BasicWcsInterpolationData implements WcsData {
	private BasicWcsData bData = new BasicWcsData();

	private LabelManager labelManager = new LabelManager();

	private Stack<RuleTrace> ruleTracing = new Stack<RuleTrace>();

	private ConceptAssertion interpolant = InterpolationConstants.undef();

	public WcsData copy() {
		BasicWcsInterpolationData result = new BasicWcsInterpolationData();
		result.bData = (BasicWcsData) bData.copy();
		result.labelManager = labelManager.copy();
		return result;
	}

	public DependencyManager getDependencyManager() {
		return bData.getDependencyManager();
	}

	public RuleLogger getLogger() {
		return bData.getLogger();
	}

	public ModifiedIndividualCollection getModifiedIndividuals() {
		return bData.getModifiedIndividuals();
	}

	public void setLogger(RuleLogger logger) {
		bData.setLogger(logger);
	}

	public LabelManager getLabelManager() {
		return labelManager;
	}

	public void setLabelManager(LabelManager labelManager) {
		this.labelManager = labelManager;
	}

	public Stack<RuleTrace> getRuleTracing() {
		return ruleTracing;
	}

	public ConceptAssertion getInterpolant() {
		return interpolant;
	}

	public void setInterpolant(ConceptAssertion interpolant) {
		this.interpolant = interpolant;
	}

}
